/* Tree */
 
#ifndef _TREE_H_
#define _TREE_H_
 
typedef struct s_tree  *tree;
 
#define EMPTY_TREE      NULL
#define tree_is_empty(t) (!(t))
 
tree tree_uniform_build(int *key, size_t depth);
 
void tree_free(tree t);
size_t tree_size(tree t);
int tree_height(tree t);
 
void tree_prefix_print(tree t);
void tree_infix_print(tree t);
 
void tree_to_dot(tree t);
 
#endif
